package com.ruoyi.ldzlsb.service;

import com.ruoyi.ldzlsb.domain.SbRepairOrder;
import com.ruoyi.common.core.domain.UR;

import java.util.List;

/**
 * 维修单 服务层
 */
public interface SbRepairOrderService {
    
    /**
     * 查询维修单列表
     * 
     * @param order 维修单信息
     * @return 维修单集合
     */
    List<SbRepairOrder> findRepairOrder(SbRepairOrder order);
    
    /**
     * 根据ID查询维修单详情
     * 
     * @param id 维修单ID
     * @return 维修单信息
     */
    SbRepairOrder getById(Long id);
    
    /**
     * 新增维修单
     * 
     * @param order 维修单信息
     * @return 结果
     */
    boolean saveRepairOrder(SbRepairOrder order);
    
    /**
     * 修改维修单
     * 
     * @param order 维修单信息
     * @return 结果
     */
    boolean updateRepairOrder(SbRepairOrder order);
    
    /**
     * 删除维修单
     * 
     * @param id 维修单ID
     * @return 结果
     */
    boolean deleteRepairOrder(Long id);
    
    /**
     * 生成维修单编码
     * 
     * @return 结果
     */
    UR generateCode();
    
    /**
     * 开始维修
     * 
     * @param id 维修单ID
     * @return 结果
     */
    boolean startRepair(Long id);
    
    /**
     * 完成维修
     * 
     * @param order 维修单信息
     * @return 结果
     */
    boolean completeRepair(SbRepairOrder order);
    
    /**
     * 取消维修单
     * 
     * @param id 维修单ID
     * @param reason 取消原因
     * @return 结果
     */
    boolean cancelRepairOrder(Long id, String reason);
} 